package com.ea.mapper;

import com.ea.domain.dto.InventoryDTO;
import com.ea.domain.query.InventoryQueryDTO;
import com.ea.domain.vo.InventoryVO;
import com.ea.domain.entity.InventoryInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;

/**
 * <p>
 * 库存信息表 Mapper 接口
 * </p>
 *
 * @author 电器商城
 * @since 2022-11-29
 */
@Mapper
public interface InventoryInfoMapper {

    /**
     * 批量添加库存
     * @param inventoryInfoList inventoryInfoList
     */
    void insertInventoryBatchList(List<InventoryInfo> inventoryInfoList);

    /**
     * 根据条件查询库存信息
     * @param queryDTO queryDTO
     * @return list
     */
    List<InventoryVO> selectAllByCondition(InventoryQueryDTO queryDTO);

    /**
     * 添加库存（数量为修改后的库存）
     * @param inventoryInfoList inventoryInfoList
     */
    void updateAddInventoryBatchList(List<InventoryInfo> inventoryInfoList);

    /**
     * 删减库存
     * @param inventoryInfoList inventoryInfoList
     */
    void updateReduceInventoryBatchList(List<InventoryInfo> inventoryInfoList);

    /**
     * 根据条件查询库存
     * @param skuIdList skuIdList
     * @return list
     */
    List<InventoryInfo> selectAllBySkuIdList( List<Long> skuIdList);

    /**
     * 修改库存信息
     * @param skuId
     * @param amount
     */
    void updateInventoryInfoBySkuId(@Param("skuId") Long skuId, @Param("amount")BigDecimal amount);

    /**
     * 查询库存
     * @return
     */
    List<InventoryDTO> queryFlowerStock();
}
